package com.lovo.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lovo.dao.IMovieDao;
import com.lovo.entity.MovieEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;

@Component
public class MtServiceImpl {
    @Autowired
    IRemoteService remoteService;
    @Autowired
    IMovieDao movieDao;

    /**
     * * 第一位，表示秒，取值0-59
     * * 第二位，表示分，取值0-59
     * * 第三位，表示小时，取值0-23
     * * 第四位，日期天/日，取值1-31
     * * 第五位，日期月份，取值1-12
     * * 第六位，星期，取值1-7，1-星期1
     * * 第7为，年份，可以留空，取值1970-2099ss
     */
//    @Scheduled(cron = "1 2 14 * * 3")
    @Scheduled(fixedRate = 50)
    public void monthGetMovie() {
        //获取当期年月
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
        String yearMonth = dateTimeFormatter.format(LocalDate.now());
        //查看是否需要同步
//        int count = movieDao.findAllByMovieDate(yearMonth);
        QueryWrapper<MovieEntity> q = new QueryWrapper<>();
        q.eq("movieDate", yearMonth);
        int count = movieDao.selectList(q).size();
        if (count == 0) {
            //当月还没同步
            //远程调用，电影院，电影票信息
            List<MovieEntity> list = remoteService.currentMonthMovie(yearMonth);
            //持久化到本地数据库
            for (int i = 0; i < list.size(); i++) {
                movieDao.insert(list.get(i));
            }
        }
    }
}
